<?php

/**
 * @Author:      lyt
 * @DateTime:    2016-02-23 19:14:22
 * @Description: 门店的入库单 详情
 */
class MaintenanceStorageItem extends Eloquent
{
    protected $table = "maintenance_storage_item";

    /**
     * @Author:      lyt
     * @DateTime:    2016-03-03 17:19:08
     * @Description: 根据门店 耗材的类型 耗材的id  找到出库指定数量 的 该耗材的需要的 入库批次信息
     * 根据入库时间排序 优先查找最老入库的耗材批次 适用 
     */
    public static function getUseStorageItem($shop_id,$item_type,$item_id,$number,$finally_arr,$use_id){
        if($number<=0){
            return $finally_arr;
        }
    	$msi=MaintenanceStorageItem::where("shop_id",$shop_id)
    							->where("status",1)->where("type",1)
    							// ->where("item_type",$item_type)
    							->where("item_id",$item_id)->where("current_number",">",0);
    	if(sizeof($use_id)>0){
    		$msi=$msi->whereNotIn("id",$use_id);
    	}
    	$msi=$msi->orderBy("created_at","asc")->first();
    	if($msi->current_number>=$number){//说明这次递归找到的耗材批次已经能满足 出库需要
    		$msi->user_number=$number;
    		$finally_arr[]=$msi;
    		return $finally_arr;
    	}else{//说明该次 的 递归查找批次还是没满足 出库需要 递归下个批次
    		$msi->user_number=$msi->current_number;
    		$finally_arr[]=$msi;
    		$use_id[]=$msi->id;
    		return MaintenanceStorageItem::getUseStorageItem($shop_id,$item_type,$item_id,bcsub($number,$msi->current_number,2),$finally_arr,$use_id);
    	}
    }
}